<?php

namespace App\Http\Controllers;

use GuzzleHttp\Client;
use Illuminate\Http\Request;

class InvoiceController extends Controller
{

    const open_cnvoice_url = 'http://ctest.waka6.com/open/openInvoice';
    const query_cnvoice_url = 'http://ctest.waka6.com/open/queryElectricOffpqqlsh';

    protected $app_id = '339901999999142';
    protected $identity = '93363DCC6064869708F1F3C72A0CE72A713A9D425CD50CDE';

    public function store()
    {

        $client = new Client();

        $time = time();

        $order = [
            'buyername'=>'个 人',
            'taxnum'=>'',//"taxnum":"110101TRDX8RQU1",可为空购方税号企业要填，个人可为空
            'phone'=>13264706948,//购方手机
            'address'=>'',
            'account'=>'',//购方银行账号 企业要填，个人可为空
            'orderno'=>$time,//订单号
            'invoicedate'=>now()->toDateTimeString(),//开票时间
            'clerk'=>'袁牧庆',//开票员
            "saleaccount"=>"东亚银行杭州分行 131001088303400",//销方银行账号 nullable
            "salephone"=>"0571-87022168", //销方电话 notnull
            "saleaddress"=>"杭州市中河中路 222 号平海国际商务大厦 5 楼", //销方地址 notnull
            'saletaxnum'=>'339901999999142',//销方税号
            "kptype"=>"1", //开票类型:1,正票;2,红票
            "message"=>"开票机号为02 请前往诺诺网(www.jss.com.cn)查询发票详情",//备注冲红时，必须在备注中注明“对应正数发票代码:XXXXXXXXX号码:YYYYYYYY”文案，其中“X”为发票代码，“Y”为发票号码，否则接口会自动添加该文案
            "payee"=>"络克",//收款人
            "checker"=>"朱燕",//复核人
            "fpdm"=>"",//对应蓝票发票代码 红票必填，不满12 位请左补 0
            "fphm"=>"",//对应蓝票发票号码 红票必填，不满8 位请左补 0
            "tsfs"=>2,//推 送 方 式 :-1, 不 推送;0,邮箱;1,手机(默认);2,邮箱、手机
            'email'=>"1968912619@qq.com",//推送邮箱（tsfs 为 0或 2 时，此项为必填）
            "qdbz"=>"1",//清单标志:0,根据项目名称数，自动产生清单;1,将项目信息打印至清单
            /**
             * qdbz 为 1 是，此项为必填
             * 清单项目名称:打印
            清单时对应发票票面
            项目名称，注意：税
            总要求清单项目名称
            为（详见销货清单
             */
            "qdxmmc"=>"1111",
            'telephone'=>'',//购方电话
            'dkbz'=>'',//代开标志:0 非代开;1代开。代开蓝票备注文案要求包含：代开企业税号:***,代开企业名称:***；代开红票备注文案要求：对应正数发票代码:***号码:***代开企业税号 :*** 代 开 企 业 名称:***。
            'detail'=>[
                [
                    "goodsname"=>"1",
                    "num"=>"1",
                    "price"=>"19.99",
                    "hsbz"=>"0", //单价含税标志，0:不含税,1:含税
                    "taxrate"=>"0.16",//税率
                    "spec"=>"1",//规格型号
                    "unit"=>"1",//单位
                    "spbm"=>"1090511030000000000",//商品编码
                    "fphxz"=>"0",//发票行性质:0,正常行;1,折扣行;2,被折扣行
                    "yhzcbs"=>"0",//优惠政策标识:0,不使用;1,使用
                    "zzstsgl"=>"222222",//当 yhzcbs 为 1时，此项必填 //1时，此项必填增值税特殊管理，如：即征即退、免税、简易征收 等
                    "lslbs"=>"",//零税率标识:空,非零税率;1,免税;2,不征税;3,普通零税率
                ],
                [
                    "goodsname"=>"2",
                    "num"=>"1",
                    "price"=>"19.99",
                    "hsbz"=>"0", //单价含税标志，0:不含税,1:含税
                    "taxrate"=>"0.16",//税率
                    "spec"=>"1",//规格型号
                    "unit"=>"1",//单位
                    "spbm"=>"1090511030000000000",//商品编码
                    "fphxz"=>"0",//发票行性质:0,正常行;1,折扣行;2,被折扣行
                    "yhzcbs"=>"0",//优惠政策标识:0,不使用;1,使用
                    "zzstsgl"=>"222222",//当 yhzcbs 为 1时，此项必填 //1时，此项必填增值税特殊管理，如：即征即退、免税、简易征收 等
                    "lslbs"=>"",//零税率标识:空,非零税率;1,免税;2,不征税;3,普通零税率
                ],
            ],
        ];

        $body = [
            'identity'=>'93363DCC6064869708F1F3C72A0CE72A713A9D425CD50CDE',
            'order'=>$order,
        ];

        try{
            $res = $client->request('POST',self::open_cnvoice_url,['body'=>json_encode(['order'=>$order]),'form_params'=>['order'=>json_encode($order)]]);

            dd(\GuzzleHttp\json_decode($res->getBody()));

        }catch (\Exception $e){
            dd($e->getMessage());
        }
        //dd($res->getBody());


    }

    public function query()
    {

        $client = new Client();

        $time = time();

        $fpqqlsh = [
            '18060610253501000108'
        ];

        $body = [
            'identity'=>'93363DCC6064869708F1F3C72A0CE72A713A9D425CD50CDE',
            'fpqqlsh'=>$fpqqlsh,
        ];

        try{
            $res = $client->request('POST',self::query_cnvoice_url,['form_params'=>['fpqqlsh'=>json_encode($fpqqlsh)]]);

dd(json_decode($res->getBody(),true));


        }catch (\Exception $e){
            dd($e->getMessage());
        }
        //dd($res->getBody());

    }
}
